package servlet;
 
 import pojo.User;
 import service.UserService;
 import service.impl.UserServiceImpl;
 import utils.Page;

 import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
 @WebServlet(urlPatterns = "/user")
 public class UserServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         doPost(req, resp);
     }
 
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         UserService userService = new UserServiceImpl();
         req.setCharacterEncoding("UTF-8");
         String action = req.getParameter("action");
         if ("list2".equals(action)) {
             String name = req.getParameter("name");
             String pass = req.getParameter("pass");
             User condition = new User(name,pass);
             String currentPage=req.getParameter("currentPage");
             if(currentPage == null){
                 currentPage="1";
             }
             int int_currentPage=Integer.parseInt(currentPage);
             Page page=new Page();
             page.setCurrentPage(int_currentPage);
             int count = userService.count(condition);
             page.setTotalCount(count);
             page.setTotalPage();
             int pageSize=page.getPageSize();
             //计算偏移量
             int offset=(int_currentPage-1)*pageSize;




             List<User> users = userService.findAll(condition, offset, pageSize);
             req.setAttribute("users", users);
             req.setAttribute("condition", condition);
             req.setAttribute("page",page);
             req.getRequestDispatcher("/list2.jsp").forward(req,resp);
         } else if ("delete".equals(action)) {

             String sid = req.getParameter("id");

             Integer id = Integer.parseInt(sid);

             // 根据id查询用户信息
             int result = userService.deleteUserById(id);

             if (result > 0) {
                 // 重定向到查询所有用户的页面
                 resp.sendRedirect("user?action=list2");
             }
         }else if ("toupdate".equals(action)) {

             String sid = req.getParameter("id");
             int id = Integer.parseInt(sid);

             User users = userService.findUserById(id);

             req.setAttribute("user", users);
             req.getRequestDispatcher("/UpdateUser.jsp").forward(req, resp);
         }else if ("add".equals(action)) {

             String name = req.getParameter("name");
             String pass = req.getParameter("pass");
             int result = userService.addUser(new User(name,pass));
             if (result > 0) {
                 // 重定向
                 resp.sendRedirect("user?action=list2");
             } else {

             }

         }
         }
     }




